// 表单验证工具 graceChecker.js
var graceChecker = {
    error: '',
    check: function (data, rule) {
        for (var i = 0; i < rule.length; i++) {
            var item = rule[i];
            if (!this.checkItem(data[item.name], item)) {
                this.error = item.errorMsg;
                return false;
            }
        }
        return true;
    },
    checkItem: function (value, rule) {
        // 必填项不能为空
        if (rule.checkType === 'notnull') {
            return (value != null && value.length > 0);
        }
        // 字符串长度
        if (rule.checkType === 'string') {
            var len = value ? value.length : 0;
            var ruleLen = rule.checkRule.split(',');
            return (len >= parseInt(ruleLen[0]) && len <= parseInt(ruleLen[1]));
        }
        // 数字
        if (rule.checkType === 'number') {
            return !isNaN(value);
        }
        // 正则表达式
        if (rule.checkType === 'regexp') {
            return new RegExp(rule.checkRule).test(value);
        }
        // 枚举值
        if (rule.checkType === 'in') {
            return rule.checkRule.split(',').indexOf(value) >= 0;
        }
        return true;
    }
};

export default graceChecker;
